Recently, as an error correcting code to realize high error correction performance in a feasible circuit cost, an LDPC (Low-Density Parity-Check) code attracts attentions. An LDPC code provides high error correction performance and can be mounted in a simple manner, and is therefore adapted to error correction coding schemes such as the fast wireless LAN system in IEEE802.11n and a digital broadcast system.
An LDPC code is an error correcting code defined in a form of a low-density parity-check matrix H. That is, an LDPC code is a block code having the same length as the column length N of check matrix H.
However, like Ethernet (trademark), most of present communication systems have a feature of communicating transmission information on a per variable-length packet basis or on a per frame basis. If an LDPC code, which is a block code, is applied to such systems, for example, a problem arises in the method of applying a fixed-length LDPC code block to a variable-length Ethernet (trademark) frame. In IEEE802.11n, although padding and puncturing are applied to a transmission information sequence to adjust the transmission information sequence length and the LDPC code block length, if padding and puncturing are performed, it is difficult to prevent a change in the coding rate and redundant sequence transmission.
As such an LDPC code of a block code (hereinafter referred to as “LDPC-BC” (Low-Density Parity-Check Block Code)), an LDPC-CC (Low-Density Parity-Check Convolutional Code) is studied which can encode and decode an information sequence of an arbitrary length (e.g. see Non-Patent Document 1 and Non-Patent Document 2).
An LDPC-CC is a convolutional code defined by a low-density parity-check matrix, and, for example, FIG. 1 shows a parity-check matrix HT[0, n] of an LDPC-CC of coding rate R=½ (=b/c).
Here, the elements h1(m)(t) and h2(m)(t) in HT[0, n] have “0” or “1.” Also, all the other elements than h1(m)(t) and h2(m)(t) included in HT[0, n] have “0.” Also, M is the memory length in the LDPC-CC, and n is the codeword length of the LDPC-CC. As shown in FIG. 1, the LDPC-CC check matrix has features that the check matrix has a parallelogram shape, in which “1's” are assigned only to the diagonal elements and their surrounding elements in the matrix and “0's” are assigned to the lower left elements and upper right elements in the matrix.
Here, referring to the coding rate R=½ (=b/c) as an example, in the case of h1(0)(t)=1 and h2(0)(t)=1, the LDPC-CC is encoded by implementing the following equation based on check matrix HT[0, n].
                    (                  Equation          ⁢                                          ⁢          1                )                                                                                  v                          1              ,              n                                =                      u            n                          ⁢                                  ⁢                              v                          2              ,              n                                =                                                    ∑                                  i                  =                  0                                M                            ⁢                                                                    h                    1                                          (                      i                      )                                                        ⁡                                      (                    n                    )                                                  ⁢                                  u                                      n                    -                    i                                                                        +                                          ∑                                  i                  =                  1                                M                            ⁢                                                                    h                    2                                          (                      i                      )                                                        ⁡                                      (                    n                    )                                                  ⁢                                  v                                      2                    ,                                          n                      -                      i                                                                                                                              [        1        ]            
Here, un represents the transmission information sequence, and v1,n and v2,n represent the transmission codeword sequences.
FIG. 2 shows an example of an LDPC-CC encoder that implements equation 1.
As shown in FIG. 2, LDPC-CC encoder 10 is provided with shift registers 11-1 to 11-M and 14-1 to 14-M, weight multiplies 12-0 to 12-M and 13-0 to 13-M, weight control section 17, mod2 (i.e. exclusive disjunction calculation) adder 15 and bit number counter 16.
Shift registers 11-1 to 11-M and shift registers 14-1 to 14-M hold v1,n−1 and v2,n−1 (i=0, . . . , M), respectively, transmit the values to the right neighboring shift registers at the timing the next input is received, and hold the values transmitted from the left neighboring shift registers.
Weight multipliers 12-0 to 12-M and 13-0 to 13-M switch the values of h1(m) and h2(m) between 0 and 1, based on control signals transmitted from weight control section 17.
Weight control section 17 transmits the values of h1(m) and h2(m) at a timing to weight multipliers 12-0 to 12-M and 13-0 to 13-M, based on the number of counts transmitted from bit number counter 16 and a check matrix held in weight control section 17. By performing exclusive-OR of the outputs of weight multipliers 12-0 to 12-M and 13-0 to 13-M, mod2 adder 15 calculates v2,n−1. Bit number counter 16 counts the number of bits of a transmission information sequence un received as input.
By employing the above configuration, LDPC-CC encoder 10 can encode an LDPC-CC based on a check matrix.
An LDPC-CC encoder has a feature that this encoder can be realized with a very simple circuit, compared to a circuit that performs multiplication with a generation matrix and an LDPC-BC encoder that performs calculations based on the backward (forward) substitution method. Also, an LDPC-CC is an encoder for convolutional codes, so that it is not necessary to encode a transmission information sequence divided per fixed-length block, and it is possible to encode an information sequence of an arbitrary length.
By the way, it is possible to apply the sum-product algorithm to LDPC-CC decoding. Therefore, decoding algorithms that involve maximum likelihood sequence estimation such as the BCJR (Bahl, Cocke, Jeinek, Raviv) algorithm and the Viterbi algorithm, need not be used, so that it is possible to complete decoding processing with small processing delay. Further, a pipeline-type decoding algorithm is proposed utilizing the parallelogram shape of a check matrix in which “1's” are allocated (e.g. see Non-Patent Document 1).
If the decoding performances of an LDPC-CC and LDPC-BC are compared using parameters by which the circuit cost of the decoders are equal, it is shown that the decoding performance of an LDPC-CC is superior.
Non-Patent Document 1: A. J. Felstorom, and K. Sh. Zigangirov, “Time-Varying Periodic Convolutional Codes With Low-Density Parity-Check Matrix,” IEEE Transactions on Information Theory, Vol. 45, No.6, pp 2181-2191, September 1999.
Non-Patent Document 2: G. Richter, M. Kaupper, and K. Sh. Zigangirov, “Irregular low-density parity-Check convolutional codes based on protographs,” Proceeding of IEEE ISIT 2006, pp 1633-1637.
Non-Patent Document 3: B. Lu, G. Yue, and X. Wang, “Performance analysis and design optimization of LDPC-coded MIMO OFDM systems” IEEE Trans. Signal Processing., vol. 52, no. 2, pp. 348-361, February 2004.
Non-Patent Document 4: B. M. Hochwald, and S. ten Brink, “Achieving near-capacity on a multiple-antenna channel” IEEE Trans. Commun., vol. 51, no. 3, pp. 389-399, March 2003.
Non-Patent Document 5: S. Bäro, J. Hagenauer, and M. Wizke, “Iterative detection of MIMO transmission using a list-sequential (LISS) detector” Proceeding of IEEE ICC 2003, pp 2653-2657.
Non-Patent Document 6: M. Shen, G. Li, and H. Liu, “Effect of traffic channel configuration on the orthogonal frequency division multiple access down link performance” IEEE Transaction on Wireless Communications, vol. 4, no. 4, pp. 1901-1913, July 2005.
Non-Patent Document 7: T. Ohgane, T. Nishimura, and Y. Ogawa, “Applications of space division multiplexing and those performance in a MIMO channel,” IEICE Trans. Commun., vol. E88-B, no. 5, pp. 1843-1851, May 2005.
Non-Patent Document 8: P. K. Vitthaladevuni, and M. S. Alouini, “BER computation of 4/M-QAM hierarchical constellations,” IEEE Transaction on Broadcast., vol. 47, no. 3, pp. 228-239, September 2001.
Non-Patent Document 9: J. Hagenauer, “Rate-compatible punctured convolutional codes and their applications,” IEEE Trans. Commun., vol. 43, no. 6, pp. 389-400, April 1988.